package br.com.nooclix.salon.application;

import java.util.Calendar;
import java.util.List;

import br.com.nooclix.salon.domain.attendance.AttendanceSheet;
import br.com.nooclix.salon.domain.attendance.AttendanceSheetBusy;
import br.com.nooclix.salon.domain.attendance.ReportAttendance;
import br.com.nooclix.salon.domain.customer.Customer;
import br.com.nooclix.salon.domain.employee.Employee;

public interface AttendanceSheetApplication extends
		AbstractApplication<AttendanceSheet, Integer> {

	List<AttendanceSheet> findByStatus(String status);

	List<AttendanceSheet> findByPeriod(Calendar start, Calendar end);
	
	List<AttendanceSheet> findBookingByCriterion(Customer customer, Calendar start, Calendar end);
	
	List<AttendanceSheet> findByEmployeeAndPeriod(Employee employee, Calendar start, Calendar end);
	
	List<ReportAttendance> findReportEmployeeAndPeriod(Employee employee, Calendar start, Calendar end);
	
	List<AttendanceSheet> findBookingByStatus(Customer customer, Calendar start, Calendar end, String status);
	
	List<AttendanceSheetBusy> findBusyEmployee(Calendar date);
	
	List<AttendanceSheet> listBookingsByDay(Calendar date);
	
}